"""
整数边长直角三角形

若三边长{a,b,c}均为整数的直角三角形周长为p，当p = 120时，恰好存在三个不同的解：
    {20,48,52}
    {24,45,51}
    {30,40,50}
在所有的p ≤ 1000中，p取何值时有解的数目最多。

"""

dic={}
for a in range(1,1000//3+1):
    for b in range(1,1000//2):
        c=(a**2+b**2)**0.5
        if c%1==0 and a+b+c<=1000:
            perimeter=int(a+b+c)
            if perimeter in dic.keys():
                dic[perimeter]+=1
            else:
                dic[perimeter]=1                         
num,p=(max(zip(dic.values(),dic.keys())))
print(p)




# anfan, exdict = [], {}
# for i in range(1,int(1000/3)+1):#最短边
#     for j in range(i,int(1000/2)):#中间边
#         leng = (i**2+j**2)**0.5
#         if leng % 1==0:
#             sum = i+j+leng
#             if  sum <= 1000:
#                 anfan.append(int(sum))
#                 try:
#                     exdict[int(sum)].append([i, j, leng])
#                 except KeyError:
#                     exdict[int(sum)] = [[i, j, leng]]
# an,fan=0,0
# for i in anfan:
#     af=anfan.count(i)
#     if an<=af:#选择出现最多的数值
#         an=af
#         fan=i
# print(fan)
# print(exdict[fan])
# 答案：840。 有8个解，分别是：
# [40, 399, 401.0], [56, 390, 394.0], [105, 360, 375.0], [120, 350, 370.0], [140, 336, 364.0], [168, 315, 357.0], [210, 280, 350.0], [240, 252, 348.0]